package com.mhc.suzuki.dal.query;


import com.subaru.common.query.BaseCriteria;
import com.subaru.common.query.BaseQuery;
import org.apache.commons.lang.builder.ReflectionToStringBuilder;
import org.apache.commons.lang.builder.ToStringStyle;

import java.io.Serializable;

import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.List;

public class SnapshotQuery extends BaseQuery implements Serializable {
    private static final long serialVersionUID = 1L;

    public SnapshotQuery() {
        super();
    }

    public Criteria or() {
        Criteria criteria = createCriteriaInternal();
        super.oredCriteria.add(criteria);
        return criteria;
    }

    public Criteria createCriteria() {
        Criteria criteria = createCriteriaInternal();
        if (oredCriteria.size() == 0) {
            oredCriteria.add(criteria);
        }
        return criteria;
    }

    protected Criteria createCriteriaInternal() {
        Criteria criteria = new Criteria();
        return criteria;
    }

    /**
     * This class corresponds to the database table pcl_snapshot
     */
         protected abstract static class GeneratedCriteria extends BaseCriteria {

        protected GeneratedCriteria() {
            super();
        }

        public Criteria andSnapshotIdIsNull() {
            addCriterion("snapshot_id is null");
            return (Criteria) this;
        }

        public Criteria andSnapshotIdIsNotNull() {
            addCriterion("snapshot_id is not null");
            return (Criteria) this;
        }

        public Criteria andSnapshotIdEqualTo(Long value) {
            addCriterion("snapshot_id =", value, "id");
            return (Criteria) this;
        }

        public Criteria andSnapshotIdNotEqualTo(Long value) {
            addCriterion("snapshot_id <>", value, "id");
            return (Criteria) this;
        }

        public Criteria anSnapshotIdGreaterThan(Long value) {
            addCriterion("snapshot_id >", value, "id");
            return (Criteria) this;
        }

        public Criteria andSnapshotIdGreaterThanOrEqualTo(Long value) {
            addCriterion("snapshot_id >=", value, "id");
            return (Criteria) this;
        }

        public Criteria andSnapshotIdLessThan(Long value) {
            addCriterion("snapshot_id <", value, "id");
            return (Criteria) this;
        }

        public Criteria andSnapshotIdLessThanOrEqualTo(Long value) {
            addCriterion("snapshot_id <=", value, "id");
            return (Criteria) this;
        }

        public Criteria andSnapshotIdIn(List<Long> values) {
            addCriterion("snapshot_id in", values, "id");
            return (Criteria) this;
        }

        public Criteria andSnapshotIdNotIn(List<Long> values) {
            addCriterion("snapshot_id not in", values, "id");
            return (Criteria) this;
        }

        public Criteria andSnapshotIdBetween(Long value1, Long value2) {
            addCriterion("snapshot_id between", value1, value2, "id");
            return (Criteria) this;
        }

        public Criteria andSnapshotIdNotBetween(Long value1, Long value2) {
            addCriterion("snapshot_id not between", value1, value2, "id");
            return (Criteria) this;
        }

        public Criteria andGmtCreateIsNull() {
            addCriterion("gmt_create is null");
            return (Criteria) this;
        }

        public Criteria andGmtCreateIsNotNull() {
            addCriterion("gmt_create is not null");
            return (Criteria) this;
        }

        public Criteria andGmtCreateEqualTo(LocalDate value) {
            addCriterion("gmt_create =", value, "gmtCreate");
            return (Criteria) this;
        }

        public Criteria andGmtCreateNotEqualTo(LocalDate value) {
            addCriterion("gmt_create <>", value, "gmtCreate");
            return (Criteria) this;
        }

        public Criteria andGmtCreateGreaterThan(LocalDate value) {
            addCriterion("gmt_create >", value, "gmtCreate");
            return (Criteria) this;
        }

        public Criteria andGmtCreateGreaterThanOrEqualTo(LocalDate value) {
            addCriterion("gmt_create >=", value, "gmtCreate");
            return (Criteria) this;
        }

        public Criteria andGmtCreateLessThan(LocalDate value) {
            addCriterion("gmt_create <", value, "gmtCreate");
            return (Criteria) this;
        }

        public Criteria andGmtCreateLessThanOrEqualTo(LocalDate value) {
            addCriterion("gmt_create <=", value, "gmtCreate");
            return (Criteria) this;
        }

        public Criteria andGmtCreateIn(List<LocalDate> values) {
            addCriterion("gmt_create in", values, "gmtCreate");
            return (Criteria) this;
        }

        public Criteria andGmtCreateNotIn(List<LocalDate> values) {
            addCriterion("gmt_create not in", values, "gmtCreate");
            return (Criteria) this;
        }

        public Criteria andGmtCreateBetween(LocalDate value1, LocalDate value2) {
            addCriterion("gmt_create between", value1, value2, "gmtCreate");
            return (Criteria) this;
        }

        public Criteria andGmtCreateNotBetween(LocalDate value1, LocalDate value2) {
            addCriterion("gmt_create not between", value1, value2, "gmtCreate");
            return (Criteria) this;
        }

        public Criteria andGmtModifiedIsNull() {
            addCriterion("gmt_modified is null");
            return (Criteria) this;
        }

        public Criteria andGmtModifiedIsNotNull() {
            addCriterion("gmt_modified is not null");
            return (Criteria) this;
        }

        public Criteria andGmtModifiedEqualTo(LocalDate value) {
            addCriterion("gmt_modified =", value, "gmtModified");
            return (Criteria) this;
        }

        public Criteria andGmtModifiedNotEqualTo(LocalDate value) {
            addCriterion("gmt_modified <>", value, "gmtModified");
            return (Criteria) this;
        }

        public Criteria andGmtModifiedGreaterThan(LocalDate value) {
            addCriterion("gmt_modified >", value, "gmtModified");
            return (Criteria) this;
        }

        public Criteria andGmtModifiedGreaterThanOrEqualTo(LocalDate value) {
            addCriterion("gmt_modified >=", value, "gmtModified");
            return (Criteria) this;
        }

        public Criteria andGmtModifiedLessThan(LocalDate value) {
            addCriterion("gmt_modified <", value, "gmtModified");
            return (Criteria) this;
        }

        public Criteria andGmtModifiedLessThanOrEqualTo(LocalDate value) {
            addCriterion("gmt_modified <=", value, "gmtModified");
            return (Criteria) this;
        }

        public Criteria andGmtModifiedIn(List<LocalDate> values) {
            addCriterion("gmt_modified in", values, "gmtModified");
            return (Criteria) this;
        }

        public Criteria andGmtModifiedNotIn(List<LocalDate> values) {
            addCriterion("gmt_modified not in", values, "gmtModified");
            return (Criteria) this;
        }

        public Criteria andGmtModifiedBetween(LocalDate value1, LocalDate value2) {
            addCriterion("gmt_modified between", value1, value2, "gmtModified");
            return (Criteria) this;
        }

        public Criteria andGmtModifiedNotBetween(LocalDate value1, LocalDate value2) {
            addCriterion("gmt_modified not between", value1, value2, "gmtModified");
            return (Criteria) this;
        }

        public Criteria andEntityTypeIsNull() {
            addCriterion("entity_type is null");
            return (Criteria) this;
        }

        public Criteria andEntityTypeIsNotNull() {
            addCriterion("entity_type is not null");
            return (Criteria) this;
        }

        public Criteria andEntityTypeEqualTo(Integer value) {
            addCriterion("entity_type =", value, "entityType");
            return (Criteria) this;
        }

        public Criteria andEntityTypeNotEqualTo(Integer value) {
            addCriterion("entity_type <>", value, "entityType");
            return (Criteria) this;
        }

        public Criteria andEntityTypeGreaterThan(Integer value) {
            addCriterion("entity_type >", value, "entityType");
            return (Criteria) this;
        }

        public Criteria andEntityTypeGreaterThanOrEqualTo(Integer value) {
            addCriterion("entity_type >=", value, "entityType");
            return (Criteria) this;
        }

        public Criteria andEntityTypeLessThan(Integer value) {
            addCriterion("entity_type <", value, "entityType");
            return (Criteria) this;
        }

        public Criteria andEntityTypeLessThanOrEqualTo(Integer value) {
            addCriterion("entity_type <=", value, "entityType");
            return (Criteria) this;
        }

        public Criteria andEntityTypeLike(Integer value) {
            addCriterion("entity_type like", value, "entityType");
            return (Criteria) this;
        }

        public Criteria andEntityTypeNotLike(Integer value) {
            addCriterion("entity_type not like", value, "entityType");
            return (Criteria) this;
        }

        public Criteria andEntityTypeIn(List<Integer> values) {
            addCriterion("entity_type in", values, "entityType");
            return (Criteria) this;
        }

        public Criteria andEntityTypeNotIn(List<Integer> values) {
            addCriterion("entity_type not in", values, "entityType");
            return (Criteria) this;
        }

        public Criteria andEntityTypeBetween(Integer value1, Integer value2) {
            addCriterion("entity_type between", value1, value2, "entityType");
            return (Criteria) this;
        }

        public Criteria andEntityTypeNotBetween(Integer value1, Integer value2) {
            addCriterion("entity_type not between", value1, value2, "entityType");
            return (Criteria) this;
        }

        public Criteria andBizRecIdIsNull() {
            addCriterion("biz_rec_id is null");
            return (Criteria) this;
        }

        public Criteria andBizRecIdIsNotNull() {
            addCriterion("biz_rec_id is not null");
            return (Criteria) this;
        }

        public Criteria andBizRecIdEqualTo(String value) {
            addCriterion("biz_rec_id =", value, "bizRecId");
            return (Criteria) this;
        }

        public Criteria andBizRecIdNotEqualTo(String value) {
            addCriterion("biz_rec_id <>", value, "bizRecId");
            return (Criteria) this;
        }

        public Criteria andBizRecIdGreaterThan(String value) {
            addCriterion("biz_rec_id >", value, "bizRecId");
            return (Criteria) this;
        }

        public Criteria andBizRecIdGreaterThanOrEqualTo(String value) {
            addCriterion("biz_rec_id >=", value, "bizRecId");
            return (Criteria) this;
        }

        public Criteria andBizRecIdLessThan(String value) {
            addCriterion("biz_rec_id <", value, "bizRecId");
            return (Criteria) this;
        }

        public Criteria andBizRecIdLessThanOrEqualTo(String value) {
            addCriterion("biz_rec_id <=", value, "bizRecId");
            return (Criteria) this;
        }

        public Criteria andBizRecIdLike(String value) {
            addCriterion("biz_rec_id like", value, "bizRecId");
            return (Criteria) this;
        }

        public Criteria andBizRecIdNotLike(String value) {
            addCriterion("biz_rec_id not like", value, "bizRecId");
            return (Criteria) this;
        }

        public Criteria andBizRecIdIn(List<String> values) {
            addCriterion("biz_rec_id in", values, "bizRecId");
            return (Criteria) this;
        }

        public Criteria andBizRecIdNotIn(List<String> values) {
            addCriterion("biz_rec_id not in", values, "bizRecId");
            return (Criteria) this;
        }

        public Criteria andBizRecIdBetween(String value1, String value2) {
            addCriterion("biz_rec_id between", value1, value2, "bizRecId");
            return (Criteria) this;
        }

        public Criteria andBizRecIdNotBetween(String value1, String value2) {
            addCriterion("biz_rec_id not between", value1, value2, "bizRecId");
            return (Criteria) this;
        }

        public Criteria andSnapshotContentIsNull() {
            addCriterion("snapshot_content is null");
            return (Criteria) this;
        }

        public Criteria andSnapshotContentIsNotNull() {
            addCriterion("snapshot_content is not null");
            return (Criteria) this;
        }

        public Criteria andSnapshotContentEqualTo(String value) {
            addCriterion("snapshot_content =", value, "snapshotContent");
            return (Criteria) this;
        }

        public Criteria andSnapshotContentNotEqualTo(String value) {
            addCriterion("snapshot_content <>", value, "snapshotContent");
            return (Criteria) this;
        }

        public Criteria andSnapshotContentGreaterThan(String value) {
            addCriterion("snapshot_content >", value, "snapshotContent");
            return (Criteria) this;
        }

        public Criteria andSnapshotContentGreaterThanOrEqualTo(String value) {
            addCriterion("snapshot_content >=", value, "snapshotContent");
            return (Criteria) this;
        }

        public Criteria andSnapshotContentLessThan(String value) {
            addCriterion("snapshot_content <", value, "snapshotContent");
            return (Criteria) this;
        }

        public Criteria andSnapshotContentLessThanOrEqualTo(String value) {
            addCriterion("snapshot_content <=", value, "snapshotContent");
            return (Criteria) this;
        }

        public Criteria andSnapshotContentLike(String value) {
            addCriterion("snapshot_content like", value, "snapshotContent");
            return (Criteria) this;
        }

        public Criteria andSnapshotContentNotLike(String value) {
            addCriterion("snapshot_content not like", value, "snapshotContent");
            return (Criteria) this;
        }

        public Criteria andSnapshotContentIn(List<String> values) {
            addCriterion("snapshot_content in", values, "snapshotContent");
            return (Criteria) this;
        }

        public Criteria andSnapshotContentNotIn(List<String> values) {
            addCriterion("snapshot_content not in", values, "snapshotContent");
            return (Criteria) this;
        }

        public Criteria andSnapshotContentBetween(String value1, String value2) {
            addCriterion("snapshot_content between", value1, value2, "snapshotContent");
            return (Criteria) this;
        }

        public Criteria andSnapshotContentNotBetween(String value1, String value2) {
            addCriterion("snapshot_content not between", value1, value2, "snapshotContent");
            return (Criteria) this;
        }

    }

    /**
     * This class corresponds to the database table pcl_snapshot
    */
    public  static class Criteria extends GeneratedCriteria{
        protected Criteria() {
            super();
        }
    }



    @Override
    public String toString(){
        return ReflectionToStringBuilder.toString(this, ToStringStyle.DEFAULT_STYLE);
    }
}